// $URL: http://mingw-lib.googlecode.com/svn/trunk/working/avcodec_to_widget_9/input/t_box_input_http.cpp $
// $Rev: 312 $
// $Author: akio.miyoshi $
// $Date:: 2010-07-31 03:51:36 +0000#$

#include "t_box_input_http.h"
#include "nbr.h"

class T_Box_Input_HttpPrivate
{
public:
    T_Box_Input_HttpPrivate(T_Box_Input_Http *q)
        : q_ptr(q)
        , m_buffer(new quint8[q->c_buffer_size])
        , m_seq(q->m_reply)
        , m_is_valid(false)
    {
    }
    ~T_Box_Input_HttpPrivate()
    {
        delete [] m_buffer;
    }
    Q_DECLARE_PUBLIC(T_Box_Input_Http)
    class T_Box_Input_Http *q_ptr;
    quint8 *m_buffer;
    NetworkSequence m_seq;
    bool m_is_valid;
};

T_Box_Input_Http::T_Box_Input_Http(QNetworkReply *a_reply)
    : m_reply(a_reply)
{
    this->d_ptr = new T_Box_Input_HttpPrivate(this);
    Q_D(T_Box_Input_Http);
    d->m_is_valid = true;
}

T_Box_Input_Http::~T_Box_Input_Http()
{
    delete d_ptr;
}

bool T_Box_Input_Http::isValid()
{
    Q_D(T_Box_Input_Http);
    return d->m_is_valid;
}

void T_Box_Input_Http::close()
{
    Q_D(T_Box_Input_Http);
    //FIXME
    d->m_is_valid = false;
}

int T_Box_Input_Http::getIOBufferSize()
{
    return c_buffer_size;
}

qint64 T_Box_Input_Http::size()
{
    Q_D(T_Box_Input_Http);
    return d->m_seq.size();
}

qint64 T_Box_Input_Http::pos()
{
    Q_D(T_Box_Input_Http);
    return d->m_seq.pos();
}

bool T_Box_Input_Http::seek(qint64 offset)
{
    Q_D(T_Box_Input_Http);
    return d->m_seq.seek(offset);
}

QByteArray T_Box_Input_Http::wait_read(qint64 a_max_size)
{
    Q_D(T_Box_Input_Http);
    return d->m_seq.wait_read(a_max_size);
}
